Phát triển OpenWrt

Môi trường và xây dựng phát triển hệ thống OpenWrt, được biết đến với nhau như OpenWrt Buildroot, được dựa trên một hệ thống Buildroot thay đổi rất nhiều. OpenWrt Buildroot là một tập hợp các bản vá lỗi và Makefile Đó Tự động hóa Quy trình xây dựng một hệ thống hoàn chỉnh dựa trên Linux OpenWrt cho một thiết bị nhúng, bởi Xây dựng và sử dụng một Cross-compilation toolchain thích hợp.[29][30]

Thiết bị nhúng thường sử dụng một bộ xử lý khác nhau hơn so với một máy tính được tìm thấy trong máy chủ được sử dụng để xây dựng hình ảnh hệ thống OpenWrt của họ, đòi hỏi một toolchain cross-biên dịch. Như một toolchain lập chạy trên một hệ thống máy chủ, nhưng tạo ra mã cho một thiết bị nhúng nhắm mục tiêu và kiến trúc tập lệnh của vi xử lý (ISA). Ví dụ, nếu một hệ thống máy chủ sử dụng x86 và một hệ thống mục tiêu sử dụng MIPS32, toolchain compilation thường xuyên của các máy chủ chạy trên x86 và tạo ra mã cho kiến trúc x86, trong khi các toolchain cross-compilation chạy trên x86 và tạo ra mã cho các kiến trúc MIPS32. OpenWrt Buildroot Tự động hóa toàn bộ quá trình này để làm việc trên các kiến trúc tập lệnh của Embedded Devices Hầu hết các máy chủ và hệ thống.[29][31]

OpenWrt Buildroot Cung cấp các tính năng sau:[29][31]

  • làm cho nó dễ dàng để port phần mềm trên các kiến ​​trúc khác nhau
  • sử dụng kconfig (Linux kernel menuconfig) cho cấu hình của tất cả các tùy chọn
  • cung cấp một toolchain cross-compiler tích hợp (gcc, ld, uClibc vv)
  • cung cấp một khái niệm trừu tượng autotools (automake, autoconf), cmake và SCons
  • xử lý tiêu chuẩn OpenWrt hình ảnh xây dựng quy trình làm việc: tải về, vá, cấu hình, biên dịch và đóng gói
  • cung cấp một số bản sửa lỗi phổ biến cho biết gói nặng hành xử.

Ngoài việc xây dựng hình ảnh của hệ thống, môi trường phát triển OpenWrt cũng cung cấp một cơ chế cho việc đơn giản hóa xây dựng nền tảng của các gói phần mềm OpenWrt. Các mã nguồn cho mỗi gói phần mềm được yêu cầu để cung cấp một tập Makefile như các hướng dẫn xây dựng, và thiết lập một tùy chọn của các bản vá lỗi cho bản sửa lỗi hoặc tối ưu hóa.[32]